{
}
+#ifndef CONFIG_XEN
/*
* Do not allocate memory (or fail in any way) in machine_kexec().
* We are past the point of no return, committed to rebooting now.
relocate_kernel((unsigned long)image->head, (unsigned long)page_list,
image->start, cpu_has_pae);
}
+#endif
return;
}
+#ifndef CONFIG_XEN
/*
* Do not allocate memory (or fail in any way) in machine_kexec().
* We are past the point of no return, committed to rebooting now.
relocate_kernel((unsigned long)image->head, (unsigned long)page_list,
image->start);
}
+#endif
* stop all CPUs and kexec. That is it combines machine_shutdown()
* and machine_kexec() in Linux kexec terms.
*/
-NORET_TYPE void xen_machine_kexec(struct kimage *image)
+NORET_TYPE void machine_kexec(struct kimage *image)
{
xen_kexec_exec_t xke;
#ifdef CONFIG_XEN
extern int xen_machine_kexec_load(struct kimage *image);
extern void xen_machine_kexec_unload(struct kimage *image);
-extern NORET_TYPE void xen_machine_kexec(struct kimage *image) ATTRIB_NORET;
extern void xen_machine_kexec_setup_resources(void);
extern void xen_machine_kexec_register_resources(struct resource *res);
#endif
struct pt_regs fixed_regs;
crash_setup_regs(&fixed_regs, regs);
machine_crash_shutdown(&fixed_regs);
-#ifdef CONFIG_XEN
- xen_machine_kexec(image);
-#else
machine_kexec(image);
-#endif
}
xchg(&kexec_lock, 0);
}
+++ /dev/null
---- 0002/kernel/sys.c
-+++ work/kernel/sys.c
-@@ -435,8 +435,12 @@ void kernel_kexec(void)
- kernel_restart_prepare(NULL);
- printk(KERN_EMERG "Starting new kernel\n");
- machine_shutdown();
-+#ifdef CONFIG_XEN
-+ xen_machine_kexec(image);
-+#else
- machine_kexec(image);
- #endif
-+#endif
- }
- EXPORT_SYMBOL_GPL(kernel_kexec);
-
-kexec-generic.patch
git-2efe55a9cec8418f0e0cde3dc3787a42fddc4411.patch
git-2a8a3d5b65e86ec1dfef7d268c64a909eab94af7.patch
git-3566561bfadffcb5dbc85d576be80c0dbf2cccc9.patch